package com.mydemo.springlearning.functions.ioc.api;
/**
 * 对象定义属性
 *
 * BeanDefinition 的抽象
 * BeanDefinition 是 spring 对 java bean 属性的一个抽象，经过这一层抽象，配置文件可以是 xml/json/properties/yaml 等任意一种，甚至包括注解扫包。
 * 为 spring 的拓展带来极大的灵活性。
 * 本框架考虑到实现的简单性，初步只实现了 json 和基于注解扫包两种方式。
 * 后期如果有时间可以考虑添加 xml 的实现，其实更多是 xml 的解析工作量，核心流程已经全部实现
 *
 * 作者：老马啸西风
 * 链接：https://juejin.cn/post/6844904008461582350
 * 来源：稀土掘金
 * 著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。
 * @author binbin.hou
 * @since 0.0.1
 */
public interface BeanDefinition {

    /**
     * 名称
     * @return 名称
     * @since 0.0.1
     */
    String getName();

    /**
     * 设置名称
     * @param name 名称
     * @since 0.0.1
     */
    void setName(final String name);

    /**
     * 类名称
     * @return 类名称
     */
    String getClassName();

    /**
     * 设置类名称
     * @param className 类名称
     * @since 0.0.1
     */
    void setClassName(final String className);
}
